﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace chungcu
{
    public partial class quanlykhach : Form
    {
        private SqlConnection conn;
        private DataTable dt = new DataTable("khachthue");
        private DataTable dt1 = new DataTable("phongthue");
        private DataTable dt2 = new DataTable("dkdichvu");
        private DataTable dt3 = new DataTable("thanhtoan");
        private SqlDataAdapter da = new SqlDataAdapter();
        private Boolean kt;
        private void connect()
        {

            String cn = "Data source=(local);Initial Catalog=Quanlychungcu;Integrated Security=True";
            try
            {
                conn = new SqlConnection(cn);
                conn.Open(); //mo ket noi

            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show("khong thanh cong");
            }
        }

        private void disconnect()
        {
            conn.Close(); //dong ket noi
            conn.Dispose(); //giai phong tai nguyen
            conn = null; //huy doi tuong
        }
        public quanlykhach()
        {
            InitializeComponent();
        }

        private void quanlykhach_Load(object sender, EventArgs e)
        {
            connect();
            getdata();
            binding();
            

        }
        private Boolean kiemtra()
        {
            kt = true;

            if (txtcmnd.Text == "")
            {
                MessageBox.Show("ban chua nhap số cmnd !", "thong bao", MessageBoxButtons.OK);
                kt = false;
            }
            else if (txtten.Text == "")
            {
                MessageBox.Show("ban chua nhap tên khách!", "thong bao", MessageBoxButtons.OK);
                kt = false;
            }
            return kt;
        }
        private void getdata()
        {
            SqlCommand command = new SqlCommand();
            command.Connection = conn;
            command.CommandType = CommandType.Text;
            command.CommandText = @"select  ktcmnd[CMND] ,ktten[Tên],ktho[Họ],(Case gioitinh when 'True' then N'Nam' else N'Nữ' end)[Giới tính],ngaysinh[Ngày sinh],
                                    quequan[Quê quán],ktsdt[Số ĐT],ktsophong[Số phòng],ktngaythue[Ngày thuê], ktngayhethan[ngày hết hạn]
                                    from khachthue";
            da.SelectCommand = command;
            da.Fill(dt);
            showkh.DataSource = dt;
        }
        private void binding()
        {

            txtcmnd.DataBindings.Clear();
            txtcmnd.DataBindings.Add("Text", showkh.DataSource, "CMND");
            txtten.DataBindings.Clear();
            txtten.DataBindings.Add("Text", showkh.DataSource, "Tên");
            txtho.DataBindings.Clear();
            txtho.DataBindings.Add("Text", showkh.DataSource, "Họ");
            cbbgioitinh.DataBindings.Clear();
            cbbgioitinh.DataBindings.Add("Text", showkh.DataSource, "Giới tính");
            txtsodt.DataBindings.Clear();
            txtsodt.DataBindings.Add("Text",showkh.DataSource,"Số ĐT");
            dtngaysinh.DataBindings.Clear();
            dtngaysinh.DataBindings.Add("Text", showkh.DataSource, "Ngày sinh");
            txtquequan.DataBindings.Clear();
            txtquequan.DataBindings.Add("Text", showkh.DataSource, "Quê quán");
            txtsophong.DataBindings.Clear();
            txtsophong.DataBindings.Add("Text", showkh.DataSource, "Số phòng");
            dtngaythue.DataBindings.Clear();
            dtngaythue.DataBindings.Add("Text", showkh.DataSource, "Ngày thuê");
            dtngayhethan.DataBindings.Clear();
            dtngayhethan.DataBindings.Add("Text", showkh.DataSource, "Ngày hết hạn");
            
        }

        private void btnsua_Click(object sender, EventArgs e)
        {
            kiemtra();
            if (kt == true)
            {
                DataRow row = dt.Select("CMND =" + Convert.ToInt32(txtcmnd.Text))[0];
                row.BeginEdit();
                row["CMND"] = txtcmnd.Text;
                row["Tên"] = txtten.Text;
                row["Họ"] = txtho.Text;
                if (cbbgioitinh.Text == "Nam")
                {
                    row["Giới tính"] = 1;
                }
                else
                {
                    row["Giới tính"] = 0;
                }
                row["Số Đt"] = txtsodt.Text;
                row["Ngày sinh"] = dtngaysinh.Text;
                row["Quê quán"] = txtquequan.Text;
                row["Số phòng"] = txtsophong.Text;
                row["Ngày thuê"] = dtngaythue.Text;
                row["Ngày hết hạn"] = dtngayhethan.Text;
                row.EndEdit();
                SqlCommand commandUpdate = new SqlCommand();
                commandUpdate.Connection = conn;
                commandUpdate.CommandType = CommandType.Text;
                commandUpdate.CommandText = @"UPDATE khachthue set ktcmnd=@ktcmnd,
                                                                            ktten=@ktten,
                                                                            ktho=@ktho,gioitinh=@gioitinh,ktsdt=@ktsdt,ngaysinh=@ngaysinh,quequan=@quequan,
                                                                            ktsophong=@ktsophong,ktngaythue=@ktngaythue,ktngayhethan=@ktngayhethan
                                                                            WHERE ktcmnd = @ktcmnd";
                commandUpdate.Parameters.Add("@ktcmnd", SqlDbType.Int, 20, "CMND");
                commandUpdate.Parameters.Add("@ktten", SqlDbType.NVarChar, 40, "Tên");
                commandUpdate.Parameters.Add("@ktho", SqlDbType.NVarChar, 40, "Họ");
                commandUpdate.Parameters.Add("@gioitinh", SqlDbType.Int, 20, "Giới tính");
                commandUpdate.Parameters.Add("@ktsdt", SqlDbType.Int, 20, "Số ĐT");
                commandUpdate.Parameters.Add("@ngaysinh", SqlDbType.DateTime, 20, "Ngày sinh");
                commandUpdate.Parameters.Add("@quequan", SqlDbType.NVarChar, 40, "Quê quán");
                commandUpdate.Parameters.Add("@ktsophong", SqlDbType.Int, 20, "Số phòng");
                commandUpdate.Parameters.Add("@ktngaythue", SqlDbType.DateTime, 20, "Ngày thuê");
                commandUpdate.Parameters.Add("@ktngayhethan", SqlDbType.DateTime, 20, "Ngày hết hạn");
                da.UpdateCommand = commandUpdate;
                da.Update(dt);
                //if (cbbgioitinh.Text == "True")
                //{
                //    cbbgioitinh.Text = "Nam";
                //}
                //else
                //{
                //    cbbgioitinh.Text = "Nữ";
                //}
                MessageBox.Show("Bạn đã sửa thành công", "thông báo", MessageBoxButtons.OK);
                dt.Clear();
                getdata();
            }
        }

        private void btnxoa_Click(object sender, EventArgs e)
        {
            kiemtra();
            if (txtcmnd.Text.Length > 0)
            {
                
                if (kt == true)
                {
                    DataRow row = dt.Select("CMND =" + Convert.ToInt32(txtcmnd.Text))[0];
                    row.BeginEdit();
                    row.Delete();
                    row.EndEdit();

                    SqlCommand commandDelete = new SqlCommand();
                    commandDelete.Connection = conn;
                    commandDelete.CommandType = CommandType.Text;
                    commandDelete.CommandText = @"Delete from khachthue where ktcmnd = @ktcmnd";
                    commandDelete.Parameters.Add("@ktcmnd", SqlDbType.Int, 20, "CMND");
                    da.DeleteCommand = commandDelete;
                    da.Update(dt);
                    MessageBox.Show("Bạn đã xoá thành công", "thông báo", MessageBoxButtons.OK);
                }
            }
        }

        private void btnthoat_Click(object sender, EventArgs e)
        {
            Close();
            Dispose();
            disconnect();
            
        }

        private void btnphong_Click(object sender, EventArgs e)
        {
            dt1.Clear();
            string sophong = txtsophong.Text;
            SqlCommand commandphong = new SqlCommand();
            commandphong.Connection = conn;
            commandphong.CommandType = CommandType.Text;
            commandphong.CommandText = @"Select pid[Số phòng],ptang[Tầng],pdientich[Diện tích],phuongnha[Hướng nhà],pthongtin[Thông tin] from phong
                                            where pid = '" + sophong +"'";
            da.SelectCommand = commandphong;
            da.Fill(dt1);
            showphong.DataSource = dt1;
        }

        private void btndichvu_Click(object sender, EventArgs e)
        {
            dt2.Clear();
            String sophong = txtsophong.Text;
            SqlCommand commanddichvu = new SqlCommand();
            commanddichvu.Connection = conn;
            commanddichvu.CommandType = CommandType.Text;
            commanddichvu.CommandText = @"select dkdvsophong[Phòng],dvtendichvu[Dịch vụ] from dkdichvu,dichvu where  dkdichvu.dvid=dichvu.dvid  and dkdvsophong='" + sophong + "'";
            da.SelectCommand = commanddichvu;
            da.Fill(dt2);
            showdv.DataSource = dt2;
        }

        private void btnthanhtoan_Click(object sender, EventArgs e)
        {
            dt3.Clear();
            String sophong = txtsophong.Text;
            SqlCommand commandthanhtoan = new SqlCommand();
            commandthanhtoan.Connection = conn;
            commandthanhtoan.CommandType = CommandType.Text;
            commandthanhtoan.CommandText = @"select pid[Phòng],tthinhthuctt[Thanh toán] from phong,thanhtoan where  pthanhtoan = ttid  and pid='" + sophong + "'";
            da.SelectCommand = commandthanhtoan;
            da.Fill(dt3);
            showtt.DataSource = dt3;
        }

        private void btntim_Click(object sender, EventArgs e)
        {
            dt.Clear();
            SqlCommand commandtim = new SqlCommand();
            commandtim.Connection = conn;
            commandtim.CommandType = CommandType.Text;
            commandtim.CommandText = @"select  ktcmnd[CMND] ,ktten[Tên],ktho[Họ],(Case gioitinh when 'True' then N'Nam' else N'Nữ' end)[Giới tính],ngaysinh[Ngày sinh],
                                    quequan[Quê quán],ktsdt[Số ĐT],ktsophong[Số phòng],ktngaythue[Ngày thuê], ktngayhethan[ngày hết hạn]
                                    from khachthue where ktten like '%'+@ten+'%'";
            commandtim.Parameters.Add("@ten", SqlDbType.NVarChar, 40).Value = txttimkiem.Text;
            da.SelectCommand = commandtim;
            da.Fill(dt);
            
            if (dt.Rows.Count > 0)
            {
                showkh.DataSource = dt;
            }else
            {
                MessageBox.Show("không tìm thấy tên khách hàng này !","Thông báo",MessageBoxButtons.OK);
            }
            
        }

        
    }
}
